package com.woniuxy.demo.epai.service;

import com.woniuxy.demo.epai.model.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.demo.epai.vo.OrderVo;
import org.aspectj.weaver.ast.Or;

import java.util.List;

/**
 * <p>
 * 订单信息 服务类
 * </p>
 *
 * @author epai
 * @since 2021-04-12
 */
public interface IOrderService extends IService<Order> {
    /**
     * 提供给前端生成单个订单的接口
     * @return
     */
    int createOrder(Integer pid,Integer uid);

    /**
     * 前端获取待付款的全部订单
     * @return
     */
    List<OrderVo> getOrders(Integer status,Integer uid);
    /**
     * 根据用户id获取全部订单信息
     * @return
     */
    List<OrderVo> getAllOrders(Integer uid);
    /**
     * 订单支付时间倒计时（订单创建时执行，支付成功后关闭）
     *
     */
    void run(Integer oid,boolean b,Integer uid);


    //将全部订单存入redis
    boolean insertRedisOrder(OrderVo orderVo,Integer uid);

    //根据状态从redis中查询订单数据
    List<OrderVo> findRedisOrderByStatus(Integer uid,Integer status);

    //从redis中查询所有订单
    List<OrderVo> findRedisOrders(Integer uid);

    //修改redis中订单的状态
    void updateRedisOrderStatus(Integer oid,Integer status);
}
